package com.hlkj.pay.vo.pay.req;

import java.util.List;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import com.hlkj.framework.common.valid.EnumValid;
import com.hlkj.pay.enums.CommonEnum;
import com.hlkj.pay.vo.BaseReq;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
* 支付通道
* @TableName t_pay_channel
*/
@Data
public class PayChannelReq extends BaseReq {
    /**
    * 支付渠道编码
    */
    @NotBlank(message="[支付渠道编码]不能为空")
    @Size(max= 64,message="编码长度不能超过64")
    @Schema(description = "支付渠道编码")
    private String code;
    /**
    * 支付渠道名称
    */
    @NotBlank(message="[支付渠道名称]不能为空")
    @Size(max= 64,message="编码长度不能超过64")
    @Schema(description = "支付渠道名称")
    private String name;
    /**
    * 图标
    */
    @NotBlank(message="[图标]不能为空")
    @Size(max= 255,message="编码长度不能超过64")
    @Schema(description = "图标")
    private String imageUrl;
    /**
    * 状态 0 关闭 1 启用
    */
    @Schema(description = "状态 0 关闭 1 启用")
    @NotNull(message="[状态]不能为空")
    @EnumValid(value = CommonEnum.YES_NO_TYPE.class, message = "状态 无效")
    private Integer status;
    /**
    * 是否支持普通商户 0 不支持 1 支付
    */
    @NotNull(message="[是否支持普通商户]不能为空")
    @Schema(description = "是否支持普通商户 0 不支持 1 支付")
    @EnumValid(value = CommonEnum.YES_NO_TYPE.class, message = "是否支持普通商户 无效")
    private Integer merchantType;
    /**
    * 是否支持特约商户 0 不支持 1 支付
    */
    @NotNull(message="[是否支持特约商户]不能为空")
    @Schema(description = "是否支持特约商户 0 不支持 1 支付")
    @EnumValid(value = CommonEnum.YES_NO_TYPE.class, message = "是否支持特约商户 无效")
    private Integer specialMerchantType;
    /**
    * 是否支持进件 0 不支持 1 支付
    */
    @NotNull(message="[是否支持进件]不能为空")
    @Schema(description = "是否支持进件 0 不支持 1 支付")
    @EnumValid(value = CommonEnum.YES_NO_TYPE.class, message = "是否支持进件 无效")
    private Integer applyType;
    /**
    * 服务商配置
    */
    @NotBlank(message="[服务商配置]不能为空")
    @Schema(description = "服务商配置")
    private String channelConfig;
    /**
    * 普通商户配置
    */
    @Schema(description = "普通商户配置")
    private String merchantConfig;
    /**
    * 特约商户配置
    */
    @Schema(description = "特约商户配置")
    private String specialMerchantConfig;

    /**
     * 类型 1 进件 2 汇电通
     */
    @Schema(description = "类型 1 进件 2 汇电通")
    private Integer type;
    /**
    * 支付方式集合 关联 t_pay_way 中的code
    */
    @NotNull(message="[支付方式集合 ]不能为空")
    @Schema(description = "支付方式集合 关联 t_pay_way 中的code")
    private List<String> payWapCodeList;
}
